﻿using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata;

namespace AD.Pms.DataBase.Models.ZC_Order
{
    public partial class ZC_OrderContext : DbContext
    {
        public ZC_OrderContext()
        {
        }

        public ZC_OrderContext(DbContextOptions<ZC_OrderContext> options)
            : base(options)
        {
        }

        public virtual DbSet<TblOrder> TblOrder { get; set; }
        public virtual DbSet<TblPayInfo> TblPayInfo { get; set; }
        public virtual DbSet<TblProduct> TblProduct { get; set; }
        public virtual DbSet<TblSku> TblSku { get; set; }

//        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
//        {
//            if (!optionsBuilder.IsConfigured)
//            {
//#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
//                optionsBuilder.UseSqlServer("Server=47.101.182.15,9010;Database=ZC_Order;Trusted_Connection=False;User ID=sa;Password=Mic123@321");
//            }
//        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<TblOrder>(entity =>
            {
                entity.HasKey(e => e.Pkid);

                entity.ToTable("tbl_Order");

                entity.Property(e => e.Pkid).HasColumnName("PKID");

                entity.Property(e => e.CreateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.CreateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.ExpireTime).HasMaxLength(50);

                entity.Property(e => e.IsDelete).HasDefaultValueSql("((0))");

                entity.Property(e => e.OrderNo).HasMaxLength(50);

                entity.Property(e => e.OrderQuantity).HasDefaultValueSql("((0))");

                entity.Property(e => e.ProductId).HasColumnName("ProductID");

                entity.Property(e => e.Remark).HasMaxLength(200);

                entity.Property(e => e.SkuId).HasColumnName("SkuID");

                entity.Property(e => e.UpdateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.UpdateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.UserId).HasColumnName("UserID");
            });

            modelBuilder.Entity<TblPayInfo>(entity =>
            {
                entity.HasKey(e => e.Pkid);

                entity.ToTable("tbl_PayInfo");

                entity.Property(e => e.Pkid).HasColumnName("PKID");

                entity.Property(e => e.CreateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.CreateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.IsDelete).HasDefaultValueSql("((0))");

                entity.Property(e => e.OrderId).HasColumnName("OrderID");

                entity.Property(e => e.OrderNo).HasMaxLength(50);

                entity.Property(e => e.PlatformNumber).HasMaxLength(50);

                entity.Property(e => e.PlatformStatus).HasMaxLength(50);

                entity.Property(e => e.UpdateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.UpdateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.UserId).HasColumnName("UserID");
            });

            modelBuilder.Entity<TblProduct>(entity =>
            {
                entity.HasKey(e => e.Pkid);

                entity.ToTable("tbl_Product");

                entity.Property(e => e.Pkid).HasColumnName("PKID");

                entity.Property(e => e.CreateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.CreateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.IsDelete).HasDefaultValueSql("((0))");

                entity.Property(e => e.ProductName).HasMaxLength(200);

                entity.Property(e => e.ProductNo).HasMaxLength(50);

                entity.Property(e => e.TypeName)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.UpdateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.UpdateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");
            });

            modelBuilder.Entity<TblSku>(entity =>
            {
                entity.HasKey(e => e.Pkid);

                entity.ToTable("tbl_Sku");

                entity.Property(e => e.Pkid)
                    .HasColumnName("PKID")
                    .HasDefaultValueSql("(newid())");

                entity.Property(e => e.CreateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.CreateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");

                entity.Property(e => e.Discount).HasDefaultValueSql("((0))");

                entity.Property(e => e.IsDelete).HasDefaultValueSql("((0))");

                entity.Property(e => e.MarketingPrice).HasDefaultValueSql("((0))");

                entity.Property(e => e.Max).HasDefaultValueSql("((0))");

                entity.Property(e => e.Min).HasDefaultValueSql("((0))");

                entity.Property(e => e.ProductId)
                    .HasColumnName("ProductID")
                    .HasDefaultValueSql("((0))");

                entity.Property(e => e.Quantity).HasDefaultValueSql("((0))");

                entity.Property(e => e.Remark).HasMaxLength(200);

                entity.Property(e => e.SalePrice).HasDefaultValueSql("((0))");

                entity.Property(e => e.SkuName).HasMaxLength(50);

                entity.Property(e => e.SkuType)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.Slogan).HasMaxLength(50);

                entity.Property(e => e.Sort).HasDefaultValueSql("((0))");

                entity.Property(e => e.Unit).HasMaxLength(50);

                entity.Property(e => e.UpdateBy)
                    .HasMaxLength(50)
                    .IsUnicode(false);

                entity.Property(e => e.UpdateTime)
                    .HasColumnType("datetime")
                    .HasDefaultValueSql("(getdate())");
            });
        }
    }
}
